﻿using System;
using System.Collections.Generic;
using System.Linq;
using Crosland.Automotriz.Entidad;
using Crosland.Automotriz.Core;
using System.Data.SqlClient;

namespace Crosland.Automotriz.Data.Dao.Linq
{
    public class clsTD_VendedorDAO
    {
     

        public List<Crosland.Automotriz.Entidad.TD_VENDEDOR> Listar(string NombreVendedor, int CantidadRegistros)
        {

            DM_CROSLAND_20130417Entities ContextoDeObjs = new DM_CROSLAND_20130417Entities();
            List<Crosland.Automotriz.Entidad.TD_VENDEDOR> lista = new List<Crosland.Automotriz.Entidad.TD_VENDEDOR>();
            try
            {
                var q = from c in ContextoDeObjs.TD_VENDEDOR
                        where (c.APELLIDO.Contains(NombreVendedor) || c.NOMBRE.Contains(NombreVendedor))
                        orderby c.APELLIDO ascending
                        select c;
                lista = q.ToList();

                IEnumerable<Object> lista2 = new List<Object>();
                lista2 = lista.ToList();
                lista2.Take(CantidadRegistros);
            }
            catch (Exception)
            {

            }
            return lista;
        }


        public IEnumerable<Object> ListaVendedor() {

             AutomotrizEntities ContextoDeObjs = new AutomotrizEntities();
             IEnumerable<Object>  List = new List<Object>();
            try
            {
                var q = from v in ContextoDeObjs.TD_VENDEDOR
                        where v.IND_ACTIVO == true
                        select new { 

                            v.ID_VENDEDOR,
                            NOMBRE_APELLIDO = v.APELLIDO.Trim().ToUpper() + " " + v.NOMBRE.Trim().ToUpper()
                        
                        };

                List = q.ToList().OrderBy(a=> a.NOMBRE_APELLIDO);


            }
            catch{}

            return List;
        }

        public List<TD_Supervisor> ListaSupervisores() 
        {
            DM_CROSLAND_20130417Entities ContextoDeObjs = new DM_CROSLAND_20130417Entities();
            return ContextoDeObjs.ExecuteStoreQuery<TD_Supervisor>("exec USP_SUPERVISOR_LISTAR").AsQueryable().ToList();
        }

        public List<TD_Supervisor> ListaSupervisoresMapa() 
        {
            DM_CROSLAND_20130417Entities ContextoDeObjs = new DM_CROSLAND_20130417Entities();
            return ContextoDeObjs.ExecuteStoreQuery<TD_Supervisor>("exec USP_SUPERVISOR__MAPA_LISTAR").AsQueryable().ToList();
        }

        public List<TD_Vendedor_Cliente_Vendedor> ListarVendedor_Cliente_Vendedor(int ID_ORG_VTA, int ID_CANAL_DISTRIB)
        {
            DM_CROSLAND_20130417Entities ContextoDeObjs = new DM_CROSLAND_20130417Entities();
            var p = new object[] { new SqlParameter("@ID_ORG_VTA", ID_ORG_VTA), new SqlParameter("@ID_CANAL_DISTRIB", ID_CANAL_DISTRIB) };
            var resultado = ContextoDeObjs.ExecuteStoreQuery<TD_Vendedor_Cliente_Vendedor>("exec USP_Cliente_Vendedor_Listar @ID_ORG_VTA,@ID_CANAL_DISTRIB", p).AsQueryable().ToList();
            return resultado;
        }

        public List<TD_Vendedor_ID_Nombre> ListaSupervisores_x_Cartera(string cartera)
        {
            DM_CROSLAND_20130417Entities ContextoDeObjs = new DM_CROSLAND_20130417Entities();
            var p = new object[] { new SqlParameter("@cartera", cartera) };
            return ContextoDeObjs.ExecuteStoreQuery<TD_Vendedor_ID_Nombre>("exec USP_Supervisores_x_Cartera_Lista @cartera", p).AsQueryable().ToList();
        }
    }
}
